.flex {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  > *:last-child {
    margin-left: 0;
    margin-right: 0;
  }

  > li {
    list-style: none;
    padding: 0;
    margin-left: 0;
  }

  &--center {
    justify-content: center;
  }

  &--align-equal {
    align-items: stretch;
    > * {
      align-self: stretch;
    }
  }

  &--no-wrap {
    flex-wrap: no-wrap;
  }

  &--space-between {
    justify-content: space-between;
  }
}

ul.flex {
  margin: 0;
}

.gap {
  &-15 {
    > * {
      margin-right: 15px;
    }
  }

  &-20 {
    > * {
      margin-right: 20px;
    }
  }


  &-30 {
    > * {
      margin-right: 30px;
    }
  }

  &-60 {
    > * {
      margin-right: 60px;
    }
  }
}

.flex-fit {
  flex:1;
}

.flex-space-between {
  justify-content: space-between;
}

.flex-align-top {
  align-items: flex-start;
}

.grid-cols{
  display: grid;
  grid-template-columns: repeat( auto-fit, minmax(26%, 1fr) );

  grid-gap: var(--space);

  &--collapse {
    grid-gap: 0;

    > div:first-child {
      border-right:0;
      border-top-right-radius: 0;
      border-bottom-right-radius:0;
    }
    > div:last-child {
      border-left-width:0;
      border-top-left-radius: 0;
      border-bottom-left-radius:0;
    }
  }

  &--gap-small {
    grid-gap: var(--space);
  }

  &--gap-large {
    grid-gap: var(--space-x2);
  }

  &--2 {
    grid-template-columns: repeat( auto-fit, minmax(36%, 1fr) );
  }

  &--4 {
    grid-template-columns: repeat( auto-fit, minmax(20%, 1fr) );
  }

  &--5 {
    grid-template-columns: repeat( auto-fit, minmax(10%, 1fr) );
  }
}


@media screen and (max-width: 850px) {
  .grid-cols{
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-cols--full-md{
    grid-template-columns: repeat(1, 1fr);
  }
}

@media screen and (max-width: 550px) {
  .grid-cols{
    grid-template-columns: repeat(1, 1fr);
  }
}
